<?php
require_once 'BaseController.php';

/**
 * マイページ変更登画面コントローラクラス<br />
 *
 * @package apamanshop
 * @author
 * @copyright　
 */
class Mypage_MypageregreController extends Mypage_BaseController
{
	/**
	 * インデックスアクション
	 *
	 * @access public
	 * @return void
	 */
	public function indexAction()
	{
		// ログイン状態のチェック
		$this->checkLogin();
		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';

		//=====表示用共通パラメータ設定=====
		$this->setCommonParams_re();

		//=====ブロック設定=====新規登録のjsと同じ
		$this->setBlock($this->_mypageregre_helper,$this->_js_mypageregre_helper);

		//=====表示=====
		$this->display($this->_display_path);
	}


	/**
	 * 登録ボタン押下時アクション
	 *
	 * @access public
	 * @return void
	 */
	public function regchkAction()
	{
		$this->checkLogin();
		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';

		// 0:正常 1:パスワード不整合
		$passChkRes = 0;
		$result = 0;

		$password = null;
		$NickName = null;

		// パスワード一致チェック
		$passChkRes =$this->passchk($this->_params);

		// パスワードが一致している場合
		if ($passChkRes == 0)
		{
			// 更新処理API呼び出し
			$result = $this->update($params);

			// 更新成功時は完了画面へ
			if ( $result == '0003' ) {

				$loginparam['eID'] = $this->_params['eID'];
				if ( $this->_params['ePass'] !="" ) {
					$loginparam['ePass'] = $this->_params['ePass'];
				} else {
					$loginparam['ePass'] = $this->_params['eOldPass'];
				}
				$url = $this->_sslurl . "mypage/mypagefinre?MyUcd=" . $this->_params['MyUcd'];

				$loginparam['onSuccess'] =  $url;
				$loginparam['onError'] = $url;

				Apm_Util::redirect($this->_loginurl, $loginparam);
			}
		}

		// 更新不成功時は入力画面を表示
		if ($passChkRes == 1) {
			$this->_data['message'] = '確認用のパスワードが間違っています。<br/>正しく入力してください。';
		} else {
			$this->_data['message'] = Apm_Otheritems::getResMessage($result, $this->_params['MyUcd'],$this->_params['eID'] );
		}
		// 既存のjavascriptチェックは除外
		//$this->setOnLoadBodyScript(';regchk()');

		// 変更画面へリダイレクト
		$this->getSession()->_params = $this->_params;
		Apm_Util::redirect($this->_sslurl . 'mypage/mypageregre/regng');
		exit();

		//=====表示用共通パラメータ設定=====
		$this->setCommonParams();

		//=====ブロック設定=====新規登録のjsと同じ
		$this->setBlock($this->_mypageregre_helper,$this->_js_mypageregre_helper);

		//=====表示=====
		$this->display($this->_display_path);
	}

	/**
	 * 登録ボタン押下時NG画面
	 *
	 * @access public
	 * @return void
	 */
	public function regngAction()
	{
		$this->_params = $this->getSession()->_params;
		
		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';
		
		//=====表示用共通パラメータ設定=====
		$this->setCommonParams();
		
		//=====ブロック設定=====新規登録のjsと同じ
		$this->setBlock($this->_mypageregre_helper,$this->_js_mypageregre_helper);
		
		//=====表示=====
		$this->display($this->_display_path);
	}

	/**
	 * パスワードチェックアクション
	 *
	 * @access public
	 * @return void
	 */
	public function passchk($params)
	{

		//0:パスワード一致  1:パスワード不一致
		$result = 1;

		$password = null;
		$NickName = null;

		//=====リクエストパラメータ取得=====
		//以前のパスワード
		$Passold = (array_key_exists('eOldPass', $params)) ? $params['eOldPass'] : null;
		//ユーザコード
		$MyUcd = (array_key_exists('MyUcd', $params)) ? $params['MyUcd'] : null;

		//=====モデルインスタンス生成=====
		$this->_model = new Mypage_Model_Mypageregre();

		//パスワードチェック
		$account = $this->_model->getUserInfo($MyUcd);

		// パスワードが一致する場合
		if( $account[0]['M92_PASSWORD'] == $Passold ){
			$result = 0;
		}

		return $result;
	}

	/**
	 * 変更ＤＢ登録アクション
	 *
	 * @access public
	 * @return void
	 */
	public function update($params)
	{

		//表示テンプレートパス設定
		$this->_display_path = APPLICATION_PATH . '/modules/mypage/views/scripts/common2.tpl';

		//0:成功  1:id必須エラー  2：id不正エラー
		$result = -1;

		$password = null;
		$NickName = null;

		//=====リクエストパラメータ取得=====
		//ID(e-mail)
		$id = (array_key_exists('eID', $this->_params)) ? $this->_params['eID'] : null;
		//パスワード
		$Pass = (array_key_exists('ePass', $this->_params)) ? $this->_params['ePass'] : null;
		//パスワード確認用
		$Pass2 = (array_key_exists('ePass2', $this->_params)) ? $this->_params['ePass2'] : null;
		//ニックネーム
		$NickName = (array_key_exists('eNickName', $this->_params)) ? $this->_params['eNickName'] : null;
		//性別
		$Sex = (array_key_exists('eSex', $this->_params)) ? $this->_params['eSex'] : null;
		//年齢
		$Age = (array_key_exists('eAge', $this->_params)) ? $this->_params['eAge'] : null;
		//メール送付
		$Info = (array_key_exists('eInfo', $this->_params)) ? $this->_params['eInfo'] : null;
		//HTMLメール
		$HTMLMail = (array_key_exists('eHTMLMail', $this->_params)) ? $this->_params['eHTMLMail'] : null;
		//ユーザコード
		$MyUcd = (array_key_exists('MyUcd', $this->_params)) ? $this->_params['MyUcd'] : null;

		//ＤＢに登録してメールを送る
		require_once 'Zend/Http/Client.php';

		$cli = new Zend_Http_Client($this->_sslurl.'mypage/Account/updaccount',
		array(
			'maxredirects' => 1,
			'timeout' => 60
		)
		);
		$cli->setParameterPOST(
		array(
				'mode'=>'json' ,
				'isMobile' => '1' ,
				'eID' => $id,
				'ePass' => $Pass,
				'eNickName' => $NickName,
				'eSex' => $Sex,
				'eAge' => $Age,
				'eInfo' => $Info,
				'eHTMLMail' => $HTMLMail,
				'MyUcd' => $MyUcd
		)
		);

		$response = $cli->request(Zend_Http_Client::POST);
		$resArray = json_decode($response->getBody(), true);
		$result = $resArray["api_result"]["result"];

		return $result;
	}



	/**
	 * マイページ変更登録画面の共通パラメータ設定
	 *
	 */
	private function setCommonParams()
	{
		//ID(e-mail)
		$id = (array_key_exists('eID', $this->_params)) ? $this->_params['eID'] : null;
		$Pass = (array_key_exists('ePass', $this->_params)) ? $this->_params['ePass'] : null;
		$Pass2 = (array_key_exists('ePass2', $this->_params)) ? $this->_params['ePass2'] : null;
		$NickName = (array_key_exists('eNickName', $this->_params)) ? $this->_params['eNickName'] : null;
		$Sex = (array_key_exists('eSex', $this->_params)) ? $this->_params['eSex'] : null;
		$Age = (array_key_exists('eAge', $this->_params)) ? $this->_params['eAge'] : null;
		$Info = (array_key_exists('eInfo', $this->_params)) ? $this->_params['eInfo'] : null;
		$HTMLMail = (array_key_exists('eHTMLMail', $this->_params)) ? $this->_params['eHTMLMail'] : null;
		$MyUcd = (array_key_exists('MyUcd', $this->_params)) ? $this->_params['MyUcd'] : null;


		//TODO:formParam、CHeyaCD、SrhKbnStockはいらないと思う。。。
		//検索条件からのパラメータ引きずり
		$formParam = (array_key_exists('formParam', $this->_params)) ? $this->_params['formParam'] : null;
		//Cookie登録上限部屋CD
		$heyaCd = (array_key_exists('CHeyaCD', $this->_params)) ? $this->_params['CHeyaCD'] : null;
		$searchKbnStock = (array_key_exists('SrhKbnStock', $this->_params)) ? $this->_params['SrhKbnStock'] : null;

		//=====タイトル=====
		$this->setTitle('賃貸情報アパマンショップ［マイページ｜変更登録］');

		//=====ヘッダタイトル=====
		$this->setHeaderTitle('賃貸住宅・賃貸マンション・賃貸アパートの検索ならアパマンショップ。全国の賃貸住宅、賃貸不動産情報が満載です。');

		//=====タイトルバー設定=====
		if (Apm_Otheritems::IsNullOrEmpty($formParam) == false)
		{
			$this->setContentsTitle('地域から探す　検索条件を登録', 'class=\'orange\'');
		}
		elseif (Apm_Otheritems::IsNullOrEmpty($heyaCd) == false)
		{
			$this->setContentsTitle('物件詳細　お気に入りに登録', 'class=\'orange\'');
		}
		else
		{
			$this->setContentsTitle('マイページ　変更登録', '');
		}

		//=====表示用のテキスト設定（性別)=====
		if($Sex==1)
		{
			$strSex ="男";
		}
		else if($Sex==2)
		{
			$strSex ="女";
		}
		else
		{
			$strSex ="－";
		}

		//=====表示用のテキスト設定（年齢)=====
		if($Age==1)
		{
			$strAge ="～19";
		}
		else if($Age==2)
		{
			$strAge ="20～29";
		}
		else if($Age==3)
		{
			$strAge ="30～39";
		}
		else if($Age==4)
		{
			$strAge ="40～49";
		}
		else if($Age==5)
		{
			$strAge ="50～59";
		}
		else if($Age==6)
		{
			$strAge ="60～";
		}
		else
		{
			$strAge ="－";
		}

		//なんか色々
		$this->_data['strFormParam'] = $formParam;
		$this->_data['strCHeyaCD'] = $heyaCd;
		$this->_data['strSrhKbnStock'] = $searchKbnStock;
		$this->_data['eID'] = $id;
		$this->_data['ePass'] = $Pass;
		$this->_data['ePass2'] = $Pass2;
		$this->_data['eNickName'] = $NickName;
		$this->_data['eSex'] = $Sex;
		$this->_data['strSex'] = $strSex;
		$this->_data['eAge'] = $Age;
		$this->_data['strAge'] = $strAge;
		$this->_data['eInfo'] = $Info;
		$this->_data['eHTMLMail'] = $HTMLMail;
		$this->_data['eMyUcd'] = $MyUcd;
		// 共通
        $this->addMetaJs('/app/js/jquery.validation.js');
		//
        $this->addMetaCss('/css/inquiry/hp/form.css');
        $this->addMetaCss('/css/mypage/mypage.css');



		$this->_breadcrumb->reset();
        $this->_breadcrumb->add(Apm_Config_Search::BREADCRUMB_TOP, $this->_baseurl);
        $this->_breadcrumb->add('マイページ', $this->_baseurl . 'mypage/menu');
        $this->_breadcrumb->add('登録情報の変更', $this->_sslurl . 'mypage/mypagereg');
        $this->setBreadCrumb($this->_breadcrumb->generateBreadcrumb());

	}


	/**
	 * マイページ変更登録画面の最初の共通パラメータ設定
	 *
	 */
	private function setCommonParams_re()
	{
		//ユーザコード
		$MyUcd = (array_key_exists('MyUcd', $this->_params)) ? $this->_params['MyUcd'] : null;

		//TODO:formParam、CHeyaCD、SrhKbnStockはいらないと思う。。。
		//検索条件からのパラメータ引きずり
		$formParam = (array_key_exists('formParam', $this->_params)) ? $this->_params['formParam'] : null;
		//Cookie登録上限部屋CD
		$heyaCd = (array_key_exists('CHeyaCD', $this->_params)) ? $this->_params['CHeyaCD'] : null;
		$searchKbnStock = (array_key_exists('SrhKbnStock', $this->_params)) ? $this->_params['SrhKbnStock'] : null;

		//=====タイトル=====
		$this->setTitle('賃貸情報アパマンショップ［マイページ｜変更登録］');

		//=====ヘッダタイトル=====
		$this->setHeaderTitle('賃貸住宅・賃貸マンション・賃貸アパートの検索ならアパマンショップ。全国の賃貸住宅、賃貸不動産情報が満載です。');

		//=====タイトルバー設定=====
		if (Apm_Otheritems::IsNullOrEmpty($formParam) == false)
		{
			$this->setContentsTitle('地域から探す　検索条件を登録', 'class=\'orange\'');
		}
		elseif (Apm_Otheritems::IsNullOrEmpty($heyaCd) == false)
		{
			$this->setContentsTitle('物件詳細　お気に入りに登録', 'class=\'orange\'');
		}
		else
		{
			$this->setContentsTitle('マイページ　変更登録', '');
		}

		//=====モデルインスタンス生成=====
		$this->_model = new Mypage_Model_Mypageregre();

		// eID取得
		$cunnrentEId = $this->getCurrentUserEid();
		// ユーザID取得
		$userList = $this->_model->getUId($cunnrentEId);

		$MyUcd=$userList[0]['M92_USER_CD'];

		$account = array();
		$account = $this->_model->getUserInfo($MyUcd);
		$id=$account[0]['M92_E_MAIL'];
		$NickName = $account[0]['M92_HANDLE_NAME'];
		$Sex = $account[0]['M92_SEX'];
		$Age = $account[0]['M92_AGE'];
		$Info = $account[0]['M92_ANNAI_FLG'];
		$HTMLMail = $account[0]['M92_HTML_MAIL_FLG'];

		//=====表示用のテキスト設定（性別)=====
		if($Sex==1)
		{
			$strSex ="男";
		}
		else if($Sex==2)
		{
			$strSex ="女";
		}
		else
		{
			$strSex ="－";
		}

		//=====表示用のテキスト設定（年齢)=====
		if($Age==1)
		{
			$strAge ="～19";
		}
		else if($Age==2)
		{
			$strAge ="20～29";
		}
		else if($Age==3)
		{
			$strAge ="30～39";
		}
		else if($Age==4)
		{
			$strAge ="40～49";
		}
		else if($Age==5)
		{
			$strAge ="50～59";
		}
		else if($Age==6)
		{
			$strAge ="60～";
		}
		else
		{
			$strAge ="－";
		}


		//なんか色々
		$this->_data['strFormParam'] = $formParam;
		$this->_data['strCHeyaCD'] = $heyaCd;
		$this->_data['strSrhKbnStock'] = $searchKbnStock;
		$this->_data['eID'] = $id;
		//		$this->_data['ePass'] = $Pass;
		//		$this->_data['ePass2'] = $Pass2;
		$this->_data['eNickName'] = $NickName;
		$this->_data['eSex'] = $Sex;
		$this->_data['strSex'] = $strSex;
		$this->_data['eAge'] = $Age;
		$this->_data['strAge'] = $strAge;
		$this->_data['eInfo'] = $Info;
		$this->_data['eHTMLMail'] = $HTMLMail;
		$this->_data['eMyUcd'] = $MyUcd;

		// 共通
        $this->addMetaJs('/app/js/jquery.validation.js');
		$this->addMetaCss('/css/inquiry/hp/form.css');
        $this->addMetaCss('/css/mypage/mypage.css');

		$this->_breadcrumb->reset();
        $this->_breadcrumb->add(Apm_Config_Search::BREADCRUMB_TOP, $this->_baseurl);
        $this->_breadcrumb->add('マイページ', $this->_baseurl . 'mypage/menu');
        $this->_breadcrumb->add('登録情報の変更', $this->_sslurl . 'mypage/mypagereg');
        $this->setBreadCrumb($this->_breadcrumb->generateBreadcrumb());
	}

	/**
	 * セッション取得
	 * @return Zend_Session_Namespace
	 */
	private function getSession()
	{
        return new Zend_Session_Namespace('MypageRegre');
	}

}
?>
